summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt17
-rw-r--r--src/audio_core/renderer/performance/detail_aspect.h1
-rw-r--r--src/audio_core/renderer/performance/entry_aspect.h1
-rw-r--r--src/core/hle/kernel/service_thread.cpp3
-rw-r--r--src/core/memory.cpp2
-rw-r--r--src/video_core/engines/draw_manager.cpp2
6 files changed, 18 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd59e7485..16f31b3a6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -51,6 +51,8 @@ option(YUZU_USE_BUNDLED_VCPKG "Use vcpkg for yuzu dependencies" "${MSVC}")
option(YUZU_CHECK_SUBMODULES "Check if submodules are present" ON)
+CMAKE_DEPENDENT_OPTION(YUZU_USE_FASTER_LD "Check if a faster linker is available" ON "NOT WIN32" OFF)
+
if (YUZU_USE_BUNDLED_VCPKG)
if (YUZU_TESTS)
list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
@@ -579,6 +581,21 @@ if (MSVC AND CMAKE_GENERATOR STREQUAL "Ninja")
)
endif()
+if (YUZU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+ # We will assume that if the compiler is GCC, it will attempt to use ld.bfd by default.
+ # Try to pick a faster linker.
+ find_program(LLD lld)
+ find_program(MOLD mold)
+
+ if (MOLD AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12.1")
+ message(NOTICE "Selecting mold as linker")
+ add_link_options("-fuse-ld=mold")
+ elseif (LLD)
+ message(NOTICE "Selecting lld as linker")
+ add_link_options("-fuse-ld=lld")
+ endif()
+endif()
+
enable_testing()
add_subdirectory(externals)
add_subdirectory(src)
diff --git a/src/audio_core/renderer/performance/detail_aspect.h b/src/audio_core/renderer/performance/detail_aspect.h
index ee4ac2f76..736c331b9 100644
--- a/src/audio_core/renderer/performance/detail_aspect.h
+++ b/src/audio_core/renderer/performance/detail_aspect.h
@@ -16,7 +16,6 @@ class CommandGenerator;
*/
class DetailAspect {
public:
- DetailAspect() = default;
DetailAspect(CommandGenerator& command_generator, PerformanceEntryType entry_type, s32 node_id,
PerformanceDetailType detail_type);
diff --git a/src/audio_core/renderer/performance/entry_aspect.h b/src/audio_core/renderer/performance/entry_aspect.h
index 01c1eb3f1..14c9e3baf 100644
--- a/src/audio_core/renderer/performance/entry_aspect.h
+++ b/src/audio_core/renderer/performance/entry_aspect.h
@@ -16,7 +16,6 @@ class CommandGenerator;
*/
class EntryAspect {
public:
- EntryAspect() = default;
EntryAspect(CommandGenerator& command_generator, PerformanceEntryType type, s32 node_id);
/// Command generator the command will be generated into
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp
index e72c3d35d..38afa720b 100644
--- a/src/core/hle/kernel/service_thread.cpp
+++ b/src/core/hle/kernel/service_thread.cpp
@@ -163,9 +163,6 @@ ServiceThread::Impl::~Impl() {
m_wakeup_event->Signal();
m_host_thread.join();
- // Lock mutex.
- m_session_mutex.lock();
-
// Close all remaining sessions.
for (const auto& [server_session, manager] : m_sessions) {
server_session->Close();
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 3141122f1..b3f50223b 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -195,13 +195,11 @@ struct Memory::Impl {
break;
}
case Common::PageType::Memory: {
- DEBUG_ASSERT(pointer);
u8* mem_ptr = pointer + page_offset + (page_index << YUZU_PAGEBITS);
on_memory(copy_amount, mem_ptr);
break;
}
case Common::PageType::DebugMemory: {
- DEBUG_ASSERT(pointer);
u8* const mem_ptr{GetPointerFromDebugMemory(current_vaddr)};
on_memory(copy_amount, mem_ptr);
break;
diff --git a/src/video_core/engines/draw_manager.cpp b/src/video_core/engines/draw_manager.cpp
index c59524e58..b213c374f 100644
--- a/src/video_core/engines/draw_manager.cpp
+++ b/src/video_core/engines/draw_manager.cpp
@@ -180,7 +180,7 @@ void DrawManager::ProcessTopologyOverride() {
}
void DrawManager::ProcessDraw(bool draw_indexed, u32 instance_count) {
- LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology.Value(),
+ LOG_TRACE(HW_GPU, "called, topology={}, count={}", draw_state.topology,
draw_indexed ? draw_state.index_buffer.count : draw_state.vertex_buffer.count);
ProcessTopologyOverride();